package co.edu.uniquindio.ondas.daos;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import co.edu.uniquindio.ondas.dtos.ResumenEvaluacionSeleccionDTO;
import co.edu.uniquindio.ondas.entidades.EvaluacionProyectos;
/**
 * @version 1.0
 * @author Javier
 * 
 * Session Bean implementation class EvaluacionProyectosDAO
 * 
 * @param EvaluacionProyectos hace referencia a la entidad que va hacer manejada por el DAO.
 * @param Long especifica cual es el tipo de dato de la llave primaria de la entidad. 
 */
public class EvaluacionProyectosDAO extends DAO<EvaluacionProyectos, Long>{

	/**
	 * Manejador de la persistencia
	 */
	private EntityManager entityManager;
	/**
	 * Metodo constructor 
	 *@param entityManager
	 */
	public EvaluacionProyectosDAO(EntityManager entityManager) {
		super(entityManager);
		this.entityManager=entityManager;
		// TODO Auto-generated constructor stub
	}

	@Override
	protected Class<EvaluacionProyectos> getEntityClass() {
		// TODO Auto-generated method stub
		return EvaluacionProyectos.class;
	}
	
	/**
	 * Metodo que permite consulta y obtener una lista de las Evaluaciones a ser Seleccionadas
	 * @return Lista de Evaluaciones a Seleccionar
	 */
	@SuppressWarnings("unchecked")
	public List<ResumenEvaluacionSeleccionDTO> obtenerEvaluacionesASeleccionar()
	{
		Query query=entityManager.createQuery("SELECT new co.edu.uniquindio.ondas.dtos.ResumenEvaluacionSeleccionDTO(e.identificacion, e.investigacion.identificacion, e.tema, e.impacto, e.proyeccion, e.laborInvestigativa, e.numeroPersonas, e.cumpleCondicion, e.total, e.observaciones, e.investigacion.grupo.nombre, e.investigacion.grupo.sede.institucion.municipio.nombre, e.investigacion.grupo.sede.nombre, e.evaluador.identificacion, e.evaluador.nombre, e.investigacion.nombre) FROM EvaluacionProyectos e WHERE e.investigacion.calificado='1' AND e.investigacion.seleccionado='0'");
		
		return query.getResultList();
	}

}
